List Insert( List L, ElementType X )
{
    List P = L, e = NULL;
    e = (struct Node *)malloc(sizeof(struct Node));
    e->Data=X;
    if(P->Next==NULL){
        P->Next = e;
        e->Next=NULL;
        return L;
    }
    if((P->Next->Data)>X)
    {
        e->Next = P->Next;
        P->Next = e;
        return L;
    }
    P = L->Next;
    while(P)
    {
        if(P->Data<=X&&P->Next==NULL){

             P->Next = e;
             e->Next=NULL;
             break;
        }
        if(P->Data<=X&&P->Next->Data>X)
        {
            e->Next = P->Next;
            P->Next = e;
            break;
        }

        P=P->Next;
    }
    return L;
}
